Skip to content

Seamless BFD (S-BFD)#2220

Merged
tjchadaga merged 1 commit intoopencomputeproject:masterfrom
j-bos:sBFD
Nov 17, 2025
Merged

Seamless BFD (S-BFD)#2220
tjchadaga merged 1 commit intoopencomputeproject:masterfrom
j-bos:sBFD

Conversation

@j-bos
Copy link
Copy Markdown
Contributor

@j-bos j-bos commented Oct 10, 2025

Seamless Bidirectional Forwarding Detection (S-BFD) provides a simplified mechanism for continuity testing and validation of forwarding paths. Unlike traditional BFD, S-BFD does not require session establishment or negotiation - instead, it uses a reflector model where one side (the initiator) can immediately begin sending BFD packets to the other side (the reflector) without coordinated session state.

https://datatracker.ietf.org/doc/rfc7880/

This PR introduces two new bfd session types to represent the initiator and reflector modes for S-BFD:

typedef enum _sai_bfd_session_type_t
{
    ...
    /** S-BFD Reflector */
    SAI_BFD_SESSION_TYPE_REFLECTOR,

    /** S-BFD Initiator */
    SAI_BFD_SESSION_TYPE_INITIATOR,

} sai_bfd_session_type_t;

The reflector is a simplified mode which can respond to many initiators, so some attributes which would otherwise be mandatory for BFD sessions, are not applicable for S-BFD reflectors. The reflector merely swaps several fields like the SIP<->DIP as documented in the RFC to "reflect" the packet back to the initiator.

The initiator deals with both the origination and monitoring of the BFD packets.

@j-bos j-bos changed the title Seamless BFD (SBFD) Seamless BFD (S-BFD) Oct 10, 2025
@j-bos j-bos force-pushed the sBFD branch 3 times, most recently from dbd734f to ae2a494 Compare October 13, 2025 07:57
@j-bos j-bos marked this pull request as ready for review October 13, 2025 08:33
@tjchadaga
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

Signed-off-by: Jason Bos <jbos@cisco.com>
@tjchadaga tjchadaga added the reviewed PR is discussed in SAI Meeting label Oct 23, 2025
Copy link
Copy Markdown
Contributor

@JaiOCP JaiOCP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks Good to Me

@tjchadaga
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@tjchadaga tjchadaga requested a review from abdosi November 12, 2025 20:10
@tjchadaga tjchadaga merged commit 873b0d9 into opencomputeproject:master Nov 17, 2025
3 checks passed
JaiOCP added a commit to JaiOCP/SAI that referenced this pull request Dec 19, 2025
Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

CSIG Port and Switch Attributes

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

CSIG ACL Attributes

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

CSIG TAM Attributes

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

CSIG Time Interval Unit

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

CSIG Document

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

CSIG Document

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

CSIG Document

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

Fix: "INVAILD" typo in enum '_sai_dash_flow_entry_bulk_get_session_filter_key_t' (opencomputeproject#2224)

This PR fixes a typo in the enum definition for dash_flow_entry_bulk_get_session_filter_key_t where the member INVAILD is corrected to INVALID.

Changes:

saitypesextensions.h: Renamed enum member INVAILD → INVALID.
Following will be pushed to DASH's repo once these SAI repo changes are merged.

dash_headers.p4: Renamed enum member INVAILD → INVALID.

Non UEC Member Agreement Form (opencomputeproject#2226)

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

Seamless BFD (S-BFD) (opencomputeproject#2220)

Signed-off-by: Jason Bos <jbos@cisco.com>

Replicate VXLAN UDP sport security to switch level (opencomputeproject#2195)

- Add SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_SECURITY attribute to drop tunnel packets with UDP source port outside allowed range
- Add documentation for UDP source port validation on VXLAN packet ingress
- Update both saiswitch.h and saitunnel.h with security clarifications

Signed-off-by: Marian Pritsak <marianp@mellanox.com>

SRv6 SID Marking (opencomputeproject#2222)

* SID Marking APIs

Signed-off-by: Jason Bos <jbos@cisco.com>

[DASH] Add flow bulk get session event data struct (opencomputeproject#2175)

* [DASH] Add flow bulk get session event data struct

Add flow bulk get event callback and supporting
structures to provide ability to query flows
in asynchronous manner.

Introducing SAI_PORT_ATTR_PORT_PG_PKT_DROP_STATUS (opencomputeproject#2234)

In this map, the key is the PG index and the status value (clear-on-read)
for each PG is from {0, 1}, where 0 indicates no drops were observed and 1
indicates packet drops.

Signed-off-by: Prasun Sinha <prasunsinha@google.com>

Add flow entry to the bulk session event data (opencomputeproject#2237)

Add the ability to query the flows with the
bulk get session event data callback.

The commit contains a fix for bad ordering of
classes generated by Thrift compiler for the nested
structures used in this callback.

Signed-off-by: Marian Pritsak <marianp@mellanox.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

reviewed PR is discussed in SAI Meeting

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants